package com.itheima.sh.service;

import com.itheima.sh.dao.Usermapper;
import com.itheima.sh.pojo.User;
import com.itheima.sh.util.SqlSessionUtil;
import org.apache.ibatis.session.SqlSession;

public class UserServiceImpl  {
    //1.定义登录方法接收web层传递的User对象

    public User login(User user) {
        //2.在登录方法体中获取myabtis会话对象
        SqlSession sqlSession= SqlSessionUtil.getSqlSession();
        // 3.使用会话对象调用方法获取接口代理对象
       Usermapper mapper = sqlSession.getMapper(Usermapper.class);
        ////4.使用接口代理对象调用接口登录方法，返回User对象
        User us = mapper.login(user);
        ////5.释放资源
        sqlSession.close();
        ////6.将查询的User对象返回给web层
        return us;
    }

    public boolean register(User user) {
        SqlSession sqlSession = null;
        try {
            //2.在登录方法体中获取myabtis会话对象
            sqlSession = SqlSessionUtil.getSqlSession();
            // 3.使用会话对象调用方法获取接口代理对象
            Usermapper mapper = sqlSession.getMapper(Usermapper.class);
            ////4.使用接口代理对象调用接口登录方法，返回User对象

            User u =mapper.qusery(user.getUsername());
            if (u == null) {
                //6.如果等于null,说明没有查到，可以注册，使用接口代理对象调用注册方法
                mapper.register(user);//这里传递的是user对象
                //7.提交事务
                sqlSession.commit();

                //8.返回给web层true
                return true;
            } else {
                //9.如果查询的用户对象不等于null,说明用户存在，不能注册，返回给web层false
                return false;
            }
            
        } finally {
            if (sqlSession != null) {
                //10.释放资源
                sqlSession.close();
            }
        }


    }


}
